//
// Created by wenyaxi on 24-10-29.
//
#include <common.h>
#include <iterator>

class Solution {
public:
    void merge(vector<int> &nums1, int m, vector<int> &nums2, int n) {
        int i=m-1, j=n-1, k=nums1.size()-1;
        while(i>=0&&j>=0) {
            if(nums1[i]>=nums2[j]) {
                nums1[k--]=nums1[i--];
            }else {
                nums1[k--]=nums2[j--];
            }
        }
        while(i>=0) nums1[k--]=nums1[i--];
        while(j>=0) nums1[k--]=nums2[j--];
    }
};

int main(int argc, char *argv[]) {
    //[1,2,3,0,0,0]
    //3
    //[2,5,6]
    //3
    Solution s;
    vector<int> nums1{0};
    vector<int> nums2{1};
    cout<<printer::int_array_to_string(nums1)<<endl;
    s.merge(nums1,0,nums2,1);
    cout<<printer::int_array_to_string(nums1)<<endl;
    return 0;
}
